home *** CD-ROM | disk | FTP | other *** search
- _CbD_ Tutorial #6
- Modifying dll's to
- give real reg codes
- Target:VoxPhone
-
-
- Pre Crack notes:
-
- Ok how many of you have wanted to crack a program and
- have it give you the real registration code instead of
- the Sorry you entered a invalid Code message? Hmm
- thought so everyone. ok well that is what this tut is
- all about. This will show you one of many ways to do this
- the program we will be werking with uses a dll to check
- our reg number so this will also give you a little info
- on cracking dll's.
-
-
- About the Tut.
-
- Target: Vox Phone
- where to get it: www.voxware.com
- protection type: user ID number / key number
- tools needed: Softice, W32dasm, Heiw (Hexeditor)
- Tut requested by: JosephCo & nIabI
- Crack requested by: DarkNight
-
-
- Well if you have ever read any of my tut's then you are
- aware of my style of cracking, Step by Step is the
- nest way for newbies to follow IMHO so that is how this
- tut will flow.
-
- Pre Crack notes
- You will need to run the program while you are on the net
- then disconect so you can use the BreakPoint we will need
- if you try to do this online you will break every time
- your system gets info from your ISP but the program will
- not start if you are not online so make sure your online
- when you start then log off. Also you will have to click
- on [help] register then fill out the form and tell the
- you are going to send your registration in by mail
- then you will be able to enter a registration number
- after that.
-
- Step 1:
-
- ok lets start by setting the Break Points we will need in Softice
- the one we will use first is GETDLGITEMTEXTA so set that in si
- (BPX GETDLGITEMTEXTA)then press ctrl-d to return to our
- program. Now lets go back to [help] and register and you
- will see the box asking for a regcode. enter anything you want
- as long as it fills the box or is atleast 10 digits long
- and then press unlock.
-
- Step 2:
- you should be in Softice now at the point that our program
- called the getdlgitemtexta function. press F11 to get back to
- the code that called this. you should see something like the
- code below
-
- 0137:00691ESC CALL [USER32!GetDlgItemTextA] <-- Call to get
- 0137:00691B92 MOV ECX,PFFFFFFF our unlock code
- 0137:00691E97 SUB EAX,EAX
- 0137:00691E99 REPNZ SCASB
- 0137:00691E9B NOT ECX
- 0137:00691E9D DEC ECX
- 0137:00691E9E CMP ECX,OA <-- Check to see if code is 10 digits
- 0137:00691EA1 JZ 00691EE3 <-- Jump if is
- 0137:00691EA3 LEA EAX,[ESP+74] <-- set msg for invalid code
- 0137:00691EA7 PUSH 006AC444
- 0137:00691EAC PUSH EAX <-- save msg
- 0137:00691BAD CALL 006A0370
- 0137:00691EB2 LEA EAX,[ESP+7C]
- 0137:00691EB6 ADD ESP,OS
- 0137:00691EB9 PUSH 30
-
- ok as you can see here the program checks to see if we entered
- a code that is 10 digits long and if we did then it will jump
- to the code below if not then it displays a invalid code msg
-
- 0137;00691EE2 RET
- 0137:00691EE3 MOV EDI ,006B3ADO <-- we land here if code is 10
- 0137:00691EB8 MOV ECX ,FPFFFFFF
- 0137:00691EED SUB EAX ,SAX
-
- ok now you will have to press F10 to single step though the code
- till you come to the code below.
-
-
- 0137 :00691F1E CALL 006936EO <-- Generate real code here
- 0137 :00691F23 LEA ECX,ESP+4C) <-- if we do a ED ESP+4c here we get
- 0137 :00691F27 ADD ESP,OC the real code
- 0137 :00691F2A PUSH 006B84BO
- 0137 :00691F2P PUSH ECX <-- Save real code
- 0137 :00691230 CALL 006AA980 <-- call to compare our code with
- 0137 :00691F35 ADD ESP,OB real code.
-
- I have skiped some code here just scroll down and
- you will see this.
-
- 0137:00691F3A MOV EAX,[006B78B4]
- 0137:00691F3F JNZ 00691F53 <-- jump if code is invalid
- 0137:00691F41 MOV WORD PTR [EAX+04],0001
- 0137:00691F47 XOR EAX,EAX
- 0137:00691F49 POP EDI
- 0137;00691F4A POP ESI
- 0137:00691F4B POP EBX
- 0137:00691F4C ADD ESP,00000130
- 0137:00691F52 RET
- 0137:00691F53 LEA ECX,[ESP+74] <-- set up for invalid code msg
- 0137:00691F57 PUSH 006AC444
- 0137:00691F5C MOV WORD PTR [EAX+04,0000
- 0137:00691F62 PUSH ECX
- 0137:00691P63 CALL 006A0370
- 0137:00691F68 LEA ECX,[ESP+7C] (this may not be 7C as i cant remeber
- i had changed it before i wrote
- down the code) This is where we
- will make our change inorder to
- get our real number.
-
-
- Ok damn that is a lot of code. well what is happening here is
- our program (the Rsagnt32.dll is getting ready to give us
- that damn " Sorry you fucked up message" the program
- copies the strings we will see in the messagebox right here
- to ECX then will push ECX in a few lines down but we dont want
- it to push the message we want it to push our real code, dont
- we. So we will need to make a few changes here. rememeber where i
- siad our real code was?
-
- :00691F23 LEA ECX,ESP+4C) <-- if we do a ED ESP+4c here we get
- :00691F27 ADD ESP,OC the real code
-
- well do you think you see what needs to be done?
- yeah change the esp+7c to esp+4c right? Nope that want work.
- If you do that you will only get the last 5 letters of the code
- because the code starts before 4c do we need to do a ED esp+4c
- and see what we get. hmm well what we want to see is our code
- start on the first line of the data window like below
-
- :009BEBD4 49505848 544E4A54 00005443 00000004 HXPITJNTCT.. .
- :009BEEE4 00000000 00000000 02EF005C 02EF0004
- :009BEEF4 034P3AAO 02EF7E3B 7P1R0500 18078394 0.> .....0....
- :009BEF04 00004389 00000000 382780D4 40000000 C........'8...0
-
- now to do this we will have to play with ESP so to save you time
- i have found that ESP+48 will do the trick.
- so what we will need to do is change LEA ECX,[ESP+7C] to
- LEA ECX,[ESP+48] this will yield us a real code every time
- in the place of that damn "Sorry you Fucked up message"
- so now you can do one of 2 things (1) restart the registraion
- process and when you get to the line with LEA ECX,[ESP+7C] on it
- do a ED xxxx:00691F68 then write down what you see in the data
- window so you can change it or i will give you the info
- you willl need when you run your hexeditor
-
- you will need 8D4C247C83C408 do a search for that in your
- hexeditor (use Hiew it is the best) and replace the 7C with 48
- and then save your file (make a back up before you do this though)
- now when you run the program you will get a message that tell you
- that a dll is corupted go on to the next step to fix that
-
- step 3:
- in the Main program file tx32.exe do the following:
- ok in hiew search for 85C0752C50 then edit it in code mode
- and change the jnz to jz or visa versa then there is one more
- search for 85C0752E33FF and change its jnz to jz or visa versa
- i cant remember if they are jnz or jz but what ever it is change
- to the opisite. or you can do a BPX MESSAGEBOXA and find the
- jumps on your own. (Hint addresses are :0041CD27 & :0041D267)
- well that is about it after you make the changes you can run the
- program and get you real number from it then register it.
- Sorry if this is not as clear as most of my tut's but i only wrote
- down the code that i needed while i was cracking and make notes
- about the rest so if you have any trouble just find me on EFNET
- in #cracking4newbies and i will be glad to explain.
-
- Oh yeah you cant unregister the program after you register it
- so make sure you get a good understanding of how it all werks
- before you regiters the program.
-
-
- Hope this Helps you to better understand Dll cracking and
- makeing a msg box show you the real reg codes for your
- program. _CbD_
-
- Greetz to :
- josephCo, nIabI, Mornings, ^pain^, drlan, mp, razzi and
- all the rest of #Cracking4newbies
-